
// 非严格模式下直接在node.js模块包装器中使用直接使用 this
console.log( this ); // 非严格模式下 this 是个空白对象
console.log( this.constructor ); // [Function: Object]
console.log( this == globalThis ); // false

// 采用 "函数声明" 方式定义函数
function hello(){
    console.log( this );
    console.log( this == globalThis ); // true
}

// 以非构造函数形式调用 hello 函数时，
// 其内部的 this 表示 globalThis
hello();

function Student(id,name,gender){
    this.id = id ;
    this.name = name ;
    this.gender = gender ;
    console.log( this )
}

// 以构造函数形式调用函数时，构造函数内的 this 表示当前新创建的实例
let x = new Student( 1001 , '朱亚红' , '女' );
console.log( x );